欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

常見排序算法之堆排序

堆排序

堆排序(Heapsort)是指利用堆積樹(堆)這種數據結構所設計的一種排序算法,它是選擇排序的一種。它是通過堆來進行選擇數據。需要注意的是排升序要建大堆,排降序建小堆

void AdjustDown(int* a, int n, int parent)
{
? ? int child = parent * 2 + 1;
? ? while (child < n)
? ? {
? ? ? ? // 找出小的那個孩子
? ? ? ? if (child + 1 < n && a[child + 1] > a[child])
? ? ? ? {
? ? ? ? ? ? ++child;
? ? ? ? }

? ? ? ? if (a[child] > a[parent])
? ? ? ? {
? ? ? ? ? ? Swap(&a[child], &a[parent]);
? ? ? ? ? ? // 繼續往下調整
? ? ? ? ? ? parent = child;
? ? ? ? ? ? child = parent * 2 + 1;
? ? ? ? }
? ? ? ? else
? ? ? ? {
? ? ? ? ? ? break;
? ? ? ? }
? ? }
}

?

void HeapSort(int* a, int n)
{
? ? // 向下調整建堆
? ? // O(N)
? ? for (int i = (n - 1 - 1) / 2; i >= 0; i--)
? ? {
? ? ? ? AdjustDown(a, n, i);
? ? }

? ? // O(N*logN)
? ? int end = n - 1;
? ? while (end > 0)
? ? {
? ? ? ? Swap(&a[0], &a[end]);
? ? ? ? AdjustDown(a, end, 0);
? ? ? ? --end;
? ? }
}

堆排序的特性總結:

  1. 堆排序使用堆來選數,效率就高了很多。
  2. 時間復雜度:O(N*logN)
  3. 空間復雜度:O(1)
  4. 穩定性:不穩定

    常見排序算法之堆排序

文章鏈接: http://m.qzkangyuan.com/25983.html

文章標題:常見排序算法之堆排序

文章版權:夢飛科技所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!

聲明:本站所有文章,如無特殊說明或標注,均為本站原創發布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發布本站內容到任何網站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程投稿分享

常見排序算法之選擇排序

2023-12-14 9:58:02

建站教程

各個排序的效率比較

2023-12-14 10:41:23

0 條回復 A文章作者 M管理員
    暫無討論,說說你的看法吧
?
個人中心
購物車
優惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 东乡县| 永州市| 和龙市| 河津市| 交城县| 漯河市| 商南县| 榆林市| 阿拉善右旗| 红桥区| 中方县| 阳城县| 蒙山县| 根河市| 广东省| 墨江| 蕲春县| 楚雄市| 东兰县| 肥乡县| 阿拉善右旗| 延川县| 徐州市| 阿合奇县| 闽侯县| 海淀区| 新野县| 陇南市| 府谷县| 宁乡县| 玉溪市| 定边县| 新化县| 乡宁县| 临洮县| 兴山县| 康保县| 同心县| 克山县| 皮山县| 响水县|